Vega-Lite文档: 05_Scales
Scales
刻度属性
属性 | 类型 | 描述 |
---|---|---|
name | String | Required, scale的唯一名字, scale和projections共用同一个名字 |
type | String | scale的类型, 默认是linear, 详见scale类型 |
domain | Domain | Domain信息, 详见Scale Domain参考 |
domainMax/Min/Mid | Number | domain最大值, 最小值, 中间值 |
domainRaw | Array | domain原始值数组, 在平移和缩放等交互操作中有用 |
interpolate | String/Object | 范围数据的插值表示, 如rgb, hsl, hsl-long, lab, hcl, hcl-long, cubehelix, cubehelix-long , 详见d3中的插值 |
range | Range | 可视化的范围, 详见Scale Range 参考 |
reverse | Boolean | 反转刻度范围, 默认false |
round | Boolean | 将数字输出进行round, 默认false |
Scale Type
Quantitative
linear
log
pow
sqrt
symlog
time
utc
sequential
Discrete
ordinal
band
point
Discretizing
quantile
quantize
threshold
bin-ordinal
Quantitative Scales
linear: 线性尺度
log: 对数尺度, 包含一个
base:Number
属性, 设置对数的底, 默认是10pow: 幂率尺度,
exponent::Number
属性设置指数, 默认是1sqrt: 等价于exponent为0.5的pow;
symlog: symmetric log, 对称对数尺度。支持非正数的log,
constant::Number
属性设置函数在0附近的斜率, 默认是1time和utc: time使用本地时间, utc使用世界时, 包含一个
nice
属性修改单位刻度, 可以指定单位, 可选项为millisecond, second, minute, hour, day, week, month, year
, 例如:{"interval": "month", "step": 3}
Discrete Scale
针对离散变量的分组。
ordinal:
band: 将连续范围划分为均匀的数据块, 可以用
step
为每个band指定大小
band支持的操作:
属性 | 类型 | 描述 |
---|---|---|
align | Number | [0,1] 范围, 默认0.5 |
domanImplicit | Boolean | 是否向domain中添加新值隐式扩展, 默认false |
padding | Number | [0,1] 范围, 同时设置paddingInner 和paddingOuter |
paddingInner/paddingOuter | Number | 刻度范围内/外的step |
point: band的变体, width为0, 常用于分类散点图, 不接受
paddingInner
属性
Discretizing Scale
离散化Scale把连续变量变成离散分组。
quantile: 按照分位数分组
quantize: 量化分组
threshold: 按照阈值切分输入, 然后提供range进行分派, 如果domain有N个阈值, 则数据被分隔成
N+1
份, 相应地, range必须有N+1
个元素
{
"name": "threshold",
"type": "threshold",
"domain": [0, 1],
"range": ["red", "white", "blue"]
}
# -1 => "red"
# 0 => "white"
# 0.5 => "white"
# 1.0 => "blue"
# 1000 => "blue"
bin-ordinal: 用vega的bin转换方法进行分箱划分domain, 合法的输入为: 分bin数组, 如
[0, 5, 10, 15, 20]
; bin对象; 以及可以解析为上述二者的signal引用。
Scale Domain
有多种方式指定domain:
array:
[0, 500]; ['a', 'b', 'c']
signal reference:
{"signal": "myDomain"}
data reference:
{"data": "myData", "field": "myCol"}